//
//  ViewController.m
//  01-UIAlertController
//
//  Created by J on 15/11/7.
//  Copyright © 2015年 JZJ. All rights reserved.
//

#import "ViewController.h"
#import "AlertController.h"
@interface ViewController ()<UIAlertViewDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.


}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event     {
  
    
    
    // 危险操作: 弹框提醒
    //1.UIAlertView
    //    [self actionSheet];
    
    
    //2.UIActionSheet
    
    //iOS8开始:UIAlertController ==UIAlertView＋UIActionSheet
    //它是一个控制器
    AlertController *alert=[AlertController alertControllerWithTitle:@"警告" message:@"约吗 约吗" preferredStyle:UIAlertControllerStyleActionSheet];// UIAlertControllerStyleActionSheet = 0,  UIAlertControllerStyleAlert
    //如果选 UIAlertControllerStyleActionSheet   调用 addTextFieldWithConfigurationHandler 会崩溃
    //1.不能有文本框textField
    //2.在ipad必须使用popover的形式展示 actionSheet
//    alert.modalPresentationStyle=UIModalPresentationPopover;
    
    
    //设置只想的item
    alert.popoverPresentationController.barButtonItem=self.navigationItem.leftBarButtonItem;
    //添加按钮
    
    __weak typeof(alert) weakAlert = alert;  //  block 里面需要弱引用
    [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {//block  点击按钮 操作   block 里面需要弱引用
        
        //点击确定按钮获得两个添加的文本框里的内容
        NSLog(@"%@ %@",[weakAlert.textFields.firstObject text],[weakAlert.textFields.lastObject text]);//因为返回的是 id类型 所以不能用.语法 只能通过调方法 获取text内容
        
        
    }]];
    
    
    //添加按钮
    [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {//block  点击按钮 操作
        
        
        NSLog(@"点击了取消按钮");
        
    }]];
    
    
        [self presentViewController:alert animated:YES completion:nil];
    

    
    
}

- (void)popover{
    
    
    // 危险操作: 弹框提醒
    //1.UIAlertView
    //    [self actionSheet];
    
    
    //2.UIActionSheet
    
    //iOS8开始:UIAlertController ==UIAlertView＋UIActionSheet
    //它是一个控制器
    AlertController *alert=[AlertController alertControllerWithTitle:@"警告" message:@"约吗 约吗" preferredStyle:UIAlertControllerStyleAlert];// UIAlertControllerStyleActionSheet = 0,  UIAlertControllerStyleAlert
    //如果选 UIAlertControllerStyleActionSheet   调用 addTextFieldWithConfigurationHandler 会崩溃
    //1.不能有文本框textField
    //2.在ipad必须使用popover的形式展示
    
    //添加按钮
    
    __weak typeof(alert) weakAlert = alert;  //  block 里面需要弱引用
    [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {//block  点击按钮 操作   block 里面需要弱引用
        
        //点击确定按钮获得两个添加的文本框里的内容
        NSLog(@"%@ %@",[weakAlert.textFields.firstObject text],[weakAlert.textFields.lastObject text]);//因为返回的是 id类型 所以不能用.语法 只能通过调方法 获取text内容
        
        
    }]];
    
    
    //添加按钮
    [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {//block  点击按钮 操作
        
        
        NSLog(@"点击了取消按钮");
        
    }]];
    
    
    //添加文本框
    
    [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
        
        //可以设置textField 的属性
        textField.textColor=[UIColor greenColor];
        
        
        //监听内容改变的方法
        //       1. textField.delegate=self;//通过协议方法监听内容改变
        
        //       2.通知
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(usernameDidChange:) name:UITextViewTextDidChangeNotification object:textField];
    }];
    
    
    //添文本框
    
    [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
        
        //可以设置textField 的属性
        textField.secureTextEntry=YES;
        textField.text=@"123";
        
        
        [textField addTarget:self action:@selector(usernameDidChange:) forControlEvents:UIControlEventEditingChanged];
        
        
    }];
    
    
    
    //添加按钮
    //    [alert addAction:[UIAlertAction actionWithTitle:@"其他按钮" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {//block  点击按钮 操作
    //
    //
    //        NSLog(@"点击了取消按钮");
    //
    //    }]];
    //
    
    [self presentViewController:alert animated:YES completion:nil];
    

    
}

- (void)usernameDidChange:(UITextField*)text{
    
    NSLog(@"%@",text.text);
    
}


- (void)actionSheet{
    
    
    UIActionSheet * sheet=[[UIActionSheet alloc]initWithTitle:@"警告" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButtonTitles:@"关闭", nil];
    
    [sheet showInView:self.view];
    
}

- (void)alertView{
       UIAlertView* alertView=[[UIAlertView alloc]initWithTitle:@"警告" message:@"约吗 约不约" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];//需要监听按钮的时候才需要代理
    
    
    alertView.alertViewStyle=UIAlertViewStyleSecureTextInput;//密码文本框
    alertView.alertViewStyle=UIAlertViewStyleLoginAndPasswordInput;//密码文本框
    
    
    [alertView show];
    
    
    
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    
    
    
    
}

@end
